Server virtualization using hypervisors is a valuable technique to reduce the operating costs of the server, as well as improving the energy efficiency. A standard server with a standard operating system and different server applications is rarely fully used all the time. Since current server hardware does not significantly reduce the energy consumption when the software is idling, this will result in energy waste. Server virtualization allows many virtual servers to run on a single physical server, and therefore the processor (cpu) cycles and memory that were previously wasted can instead be put to use for another virtual server. The software that makes this possible is referred to herein as a hypervisor.
When operating systems and server applications are virtualized onto physical hardware, a safety margin must be provided to handle those situations when there is a sudden surge in cpu cycles usage and/or memory usage by the server applications. Depending on how volatile the server applications resource usage is, this margin can be small or large. If the overall volatility of all virtual servers running within a hypervisor is low, then the margins can be kept small, and this will generally provide higher savings since more virtual servers can reliably be run on the same physical hardware.
Many server applications are currently written in the high-level language Java. Such applications are run with Java Virtual Machines (JVMs). Unfortunately the cpu-cycles and memory usage for a JVM can be quite volatile, and independent of the server application itself. This is due to the fact that a JVM has to garbage collect the Java heap, as well as optimize code that has been detected as hot. These resource usages are transient and can be significant.
Because of this, virtualized Java applications need larger safety margins than other server applications, which means that virtualization savings for virtualized Java server applications are less than for other kinds of server applications. This is an area that embodiments of the present invention are intended to address.